package src.chap08;
//------------------------------------------------------------
//LetterCount.java                          Author:wz
//
//Demonstrates the relationship between arrays an strings.
//------------------------------------------------------------

import java.util.Scanner;
public class LetterCount {
    //---------------------------------------------------------
    //Reads a sentence from the user and counts the number of
    //uppercase and lowercase letters comtained in it.
    //---------------------------------------------------------
    public static void main(String[] args) {
        final int NUMCHARS = 26;
        Scanner scan = new Scanner(System.in);

        int[] upper = new int[NUMCHARS];
        int[] lower = new int[NUMCHARS];

        char current;//the current character being processed
        int other = 0;//counter for non-alphabetics
        System.out.println("Enter a sentence:");
        String line = scan.nextLine();

        //Count the number of each letter occurrence
        for (int ch = 0;ch < line.length(); ch++)
        {
            current = line.charAt(ch);
            if (current >= 'A'&&current<='Z')
                upper[current-'A']++;
            else
                if (current >= 'a'&&current<='z')
                    lower[current-'a']++;
            else
                other++;
        }

        //Print the results
        System.out.println();
        for (int letter=0;letter<upper.length;letter++)
        {
            System.out.print((char)(letter+'A'));
            System.out.print(": "+upper[letter]);
            System.out.print("\t\t"+(char)(letter+'a'));
            System.out.println(": "+lower[letter]);
        }

        System.out.println();
        System.out.println("Non-alphabetic characters: " + other);
    }
}
